package icu.cqcai.xinsi.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 面试分析报告实体类
 */
public class InterviewAnalysis {
    
    private Long id; // 分析ID
    private Long userId; // 用户ID
    private String sessionId; // 面试会话ID
    private BigDecimal technicalScore; // 技术能力得分
    private BigDecimal expressionScore; // 表达能力得分
    private BigDecimal logicScore; // 逻辑思维得分
    private BigDecimal experienceScore; // 经验匹配得分
    private String strengths; // 优势分析（JSON数组）
    private String weaknesses; // 不足分析（JSON数组）
    private String improvements; // 改进建议（JSON数组）
    private String nextSteps; // 下一步建议
    private String reportUrl; // PDF报告文件URL
    private LocalDateTime expireTime; // 报告有效期
    private LocalDateTime createTime; // 创建时间
    private LocalDateTime updateTime; // 更新时间
    
    // 构造函数
    public InterviewAnalysis() {}
    
    public InterviewAnalysis(Long userId, String sessionId) {
        this.userId = userId;
        this.sessionId = sessionId;
        this.createTime = LocalDateTime.now();
        this.updateTime = LocalDateTime.now();
        // 设置30天有效期
        this.expireTime = LocalDateTime.now().plusDays(30);
    }
    
    // Getter和Setter方法
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public Long getUserId() {
        return userId;
    }
    
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    
    public String getSessionId() {
        return sessionId;
    }
    
    public void setSessionId(String sessionId) {
        this.sessionId = sessionId;
    }
    
    public BigDecimal getTechnicalScore() {
        return technicalScore;
    }
    
    public void setTechnicalScore(BigDecimal technicalScore) {
        this.technicalScore = technicalScore;
    }
    
    public BigDecimal getExpressionScore() {
        return expressionScore;
    }
    
    public void setExpressionScore(BigDecimal expressionScore) {
        this.expressionScore = expressionScore;
    }
    
    public BigDecimal getLogicScore() {
        return logicScore;
    }
    
    public void setLogicScore(BigDecimal logicScore) {
        this.logicScore = logicScore;
    }
    
    public BigDecimal getExperienceScore() {
        return experienceScore;
    }
    
    public void setExperienceScore(BigDecimal experienceScore) {
        this.experienceScore = experienceScore;
    }
    
    public String getStrengths() {
        return strengths;
    }
    
    public void setStrengths(String strengths) {
        this.strengths = strengths;
    }
    
    public String getWeaknesses() {
        return weaknesses;
    }
    
    public void setWeaknesses(String weaknesses) {
        this.weaknesses = weaknesses;
    }
    
    public String getImprovements() {
        return improvements;
    }
    
    public void setImprovements(String improvements) {
        this.improvements = improvements;
    }
    
    public String getNextSteps() {
        return nextSteps;
    }
    
    public void setNextSteps(String nextSteps) {
        this.nextSteps = nextSteps;
    }
    
    public String getReportUrl() {
        return reportUrl;
    }
    
    public void setReportUrl(String reportUrl) {
        this.reportUrl = reportUrl;
    }
    
    public LocalDateTime getExpireTime() {
        return expireTime;
    }
    
    public void setExpireTime(LocalDateTime expireTime) {
        this.expireTime = expireTime;
    }
    
    public LocalDateTime getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }
    
    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    
    @Override
    public String toString() {
        return "InterviewAnalysis{" +
                "id=" + id +
                ", userId=" + userId +
                ", sessionId='" + sessionId + '\'' +
                ", technicalScore=" + technicalScore +
                ", expressionScore=" + expressionScore +
                ", logicScore=" + logicScore +
                ", experienceScore=" + experienceScore +
                ", strengths='" + strengths + '\'' +
                ", weaknesses='" + weaknesses + '\'' +
                ", improvements='" + improvements + '\'' +
                ", nextSteps='" + nextSteps + '\'' +
                ", reportUrl='" + reportUrl + '\'' +
                ", expireTime=" + expireTime +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                '}';
    }
} 